﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace ArgusLight.Fractals2D.ComplexFractalColoring.IterationBasedSinus
{
	public class all_colors : Coloring
	{
		public override Color GetColor(int x, int y)
		{
			base.GetColor(x, y);
			byte[] a = GetColorBytes_Sinus3(this.data.iterations[x, y], this.fractalParameter.Iterations, this.parameter.Frequency, this.parameter.Translation);
			return Color.FromArgb(255, a[0], a[1], a[2]);
		}
	}

	public class red_green : Coloring
	{
		public override Color GetColor(int x, int y)
		{
			base.GetColor(x, y);
			byte[] a = GetColorBytes_Sinus2(this.data.iterations[x, y], this.fractalParameter.Iterations, this.parameter.Frequency, this.parameter.Translation);
			return Color.FromArgb(255, a[0], a[1], 0);
		}
	}

	public class green_blue : Coloring
	{
		public override Color GetColor(int x, int y)
		{
			base.GetColor(x, y);
			byte[] a = GetColorBytes_Sinus2(this.data.iterations[x, y], this.fractalParameter.Iterations, this.parameter.Frequency, this.parameter.Translation);
			return Color.FromArgb(255, 0, a[0], a[1]);
		}
	}

	public class blue_red : Coloring
	{
		public override Color GetColor(int x, int y)
		{
			base.GetColor(x, y);
			byte[] a = GetColorBytes_Sinus2(this.data.iterations[x, y], this.fractalParameter.Iterations, this.parameter.Frequency, this.parameter.Translation);
			return Color.FromArgb(255, a[1], 0, a[0]);
		}
	}
}
